草庐IT

while循环中的php sum变量

全部标签

variables - 如何通过连接两个字符串来创建动态变量名

我想通过连接当前日期来创建变量名,并为创建的变量名提供一个值。我的变量名应该类似于这样的"Key-2019-01"这样我就可以将值存储为varKey-2019-01="yes"我试过如下。packagemainimport("fmt""time""strconv""strings")funcmain(){currentMonth:=time.Now().Month()currentYear:=time.Now().Year()varmonth=int(currentMonth)varcurrentDate=strings.Join([]string{strconv.Itoa(curre

go - 当变量已经声明时,为什么我必须将类型传递给 make 函数?

我想使用匿名结构来做一些事情。varusers[]struct{Namestring`json:"name,omitempty"`Ageint}我必须再次编写类型来设置值users=make([]struct{Namestring`json:"name,omitempty"`Ageint},0,10)如果我坚持使用匿名结构,有没有办法让它更体面?(如果不是,我想知道为什么golang的设计会做出这样的功能...) 最佳答案 匿名结构对于一次性使用非常方便。如果您多次使用它,请定义一个命名结构类型。如果你只在一个函数中使用它,你可以在

go - 如果接口(interface)类型的变量是实现它的某种结构类型,如何检查 Go?

假设我有以下内容:typeAInterface{....}//ImplementsAtypeBstruct{....}//ImlementsAtypeCstruct{....}现在我有一个函数,它接受A类型的变量作为参数:funcFoo(objA){ifAisB{....}elseifAisC{....}}还有一个main函数:funcmain(){b:=B{}Foo(b)}如何检查传递给函数的参数是否实际上是B类型? 最佳答案 使用typeswitch如前所述,@CeriseLimón链接的旅游页面。funcFoo(vA){swi

variables - 如何对变量使用多态性

我是Go新手,开始学习多态性。当多个对象需要使用相同的功能时,我知道如何去做。但是我有一个新问题,如果我在不同的对象上有相同的变量,我不知道该怎么办。在下面的示例中,我有两个不同的对象:struct1和struct2。它们都有相同的变量name。我可以跑过它们并检查哪个是哪个并相应地工作(你可以测试它here):packagemainimport("fmt")typestruct1struct{namestring}typestruct2struct{namestring}funcmain(){structMap:=make(map[string]interface{})s1:=str

go - 在延迟恢复时设置变量

根据示例(例如gettingpanic()argumentindeferfunctioninGOlang)我已经看到,我希望它能工作,但事实并非如此。强制错误时,err返回字符串保持空白,尽管打印err字符串显示预期的错误。我确定我遗漏了一些明显的东西,但找不到它。有一点帮助吗?//expectederrorexample://chk,err:=equal("a",map[string]string{"a"})//funcEqual(ainterface{},binterface{})(checkbool,errstring){deferfunc(){ifcatch:=recover(

pointers - 在 Golang 中取消引用指向同一类型的指针变量而无需引用

我的应用程序有一个事件类型:typeEventstruct{Idstring}有时我有这种类型的实例和引用,有时没有:varevent*Event但是函数需要这种没有指针的类型:funcProcessEvent(eventEvent)所以我不能在这个函数中使用我的指针变量。也许有将*Event转换为Event的解决方案?或者我需要重构我的代码,让所有代码都没有指针?我使用这个解决方案,但我不喜欢它,因为我需要复制我的代码:event2:=Event{Id:event.Id} 最佳答案 要从指针转换,您需要取消引用指针:*event来

go - 为什么字节数组的Golang对象属性在分配给另一个变量时会被删除

我们需要在使用后清除一些变量。但是当它在结构中分配了一个[]byte字段时,它看起来真的很奇怪。为什么[]byte的赋值不是一个副本而是一个指针?我应该怎么做才能将值保留在结构a.bs中,但将b作为局部变量清除?http://play.golang.org/p/MT_wAHj2OMpackagemainimport"fmt"typesostruct{bs[]byte}funczeroes(nint)[]byte{returnmake([]byte,n)}funcwipeBytes(b[]byte){copy(b,zeroes(len(b)))}funcmain(){a:=so{bs:[

time - 两个持续时间的乘积在 Golang 变量中为零

在下面的Golang代码中,两个持续时间的乘积在变量“delay”中为零很奇怪,但是当不通过任何变量直接打印乘积时,输出符合预期。任何人都可以解释这个吗?funcStartCleanTask(){gofunc(){delay:=cfg.Config.Timeout*time.Secondfor{fmt.Println("Gocleantask:",delay,cfg.Config.Timeout*time.Second)select{case输出是:Gocleantask:05m0s更新:我还尝试运行以下代码,它运行良好。packagemainimport"fmt"import"tim

Golang 多个 goroutine 通过引用共享同一个变量

我正在尝试运行多个goroutine来修改通过引用传递的相同变量。但我确信我实现它的方式在功能上是不正确的。尽管它似乎在我的测试中有效,但我感觉如果第二个goroutine比第一个goroutine花费更长的时间运行,那么当第一个goroutine完成时,这种模式会结束父函数。我希望得到您的意见/建议/忠告。packageauthimport("regexp"zxcvbn"github.com/nbutton23/zxcvbn-go""golang.org/x/net/context")typeAuthServicestruct{}funcNewAuthService()*AuthSe

go - 对潜在变量范围(也许是指针)的困惑?不确定

我尝试寻找答案(我觉得这是一个基本概念),但找不到与我的直接相关的答案...所以这是我的帖子。我目前正在从我的服务器上解析日志文件并构建一个脚本来自动执行某些过程(学习新技能,让我的工作更轻松等)。我构建了一个简化的解析器来分解每一行。我省略了相当多的代码,因为它们不相关。这是我的功能:varparsedDataSet=make(map[int][]string)funcparseData(dataSet[]string){vartempArray[]stringforindex,element:=rangedataSet{tempData:=strings.Fields(elemen